<?php

/**		
 *	{{!strip_tags item}}	     
 *
 *	Удаляет html теги
 *
 *	Режимы
 *
 *	'plain' -- удаляет теги
 *	'text' -- заменяет теги пробелами, заменяет html_entities буквами, заменяет повторяющиеся пробелы одним.
 *	          это больше похоже на то, как контент отображается браузере.
 */

$mode = isset($params['mode']) ? $params['mode'] : 'plain';

switch ($mode) {
	case 'plain':
		echo strip_tags((string)$params[0]);
		break;

	case 'text':
	default:
		echo trim(
				preg_replace('#\s+#', ' ', 
					preg_replace('#<[^>]*>#', ' ', # вместо strip_tags(), заменяет теги пробелами
						html_entity_decode(
							(string)$params[0], ENT_QUOTES, mb_internal_encoding()))));
		break;
}

/* очень медленно

$is_prev_space = false;

$m = 'p';
for ($i = 0, $c = mb_strlen($str); $i < $c; $i++) {
	$t = mb_substr($str, $i, 1, 'utf-8');
	$m0 = $m;
	$o = '';
	if     ($m == 'p' && $t == '<') { $m = '<_'; }
	elseif ($m == 't' && $t == '>') { $m = '_>'; }
	elseif ($m == 'p' && $t == '&') { $m = '$_'; $e = ''; }
	elseif ($m == '$_' && $t == '#') { $m = '#_'; }
	elseif ($m{0} == '$' && $t == ';') { $m = '_$'; if (!$htt) $htt = array_flip(get_html_translation_table(HTML_ENTITIES)); $o = $htt["&$e;"]; }
	elseif ($m{0} == '#' && $t == ';') { $m = '_$'; $o = pack('c*', hexdec($e)); }
	elseif ($m == '$_') { $m = '$'; $e .= $t; }
	elseif ($m == '#_') { $m = '#'; $e .= $t; }
	elseif ($m == '_$') { $m = 'p'; $i--; }
	elseif ($m == '<_') { $m = 't'; }
	elseif ($m == '_>') { $m = 'p'; $i--; $o = ' '; }
	elseif ($m == '$') { $e .= $t; }
	elseif ($m == '#') { $e .= $t; }
	elseif ($m == 'p') { $o = $t; }
#echo "'$m0'\t'$t'\t'$o'\t'$m'\n";

	$is_space = $o == ' ';
	if ($o && !($is_space && $is_prev_space)) {
		echo $o;
		$is_prev_space = $is_space;
	}
}
*/

?>
